/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package fr.ove.openmath.jome.ctrlview.bidim;

/**
 *
 * @author Mr.Sam
 */
import java.awt.*;
import java.util.Vector;
import fr.ove.openmath.jome.ctrlview.bidim.DisplayLayout;
import fr.ove.openmath.jome.ctrlview.bidim.Display;
import fr.ove.openmath.jome.ctrlview.bidim.StringDisplay;
import fr.ove.openmath.jome.ctrlview.bidim.SubstitutedDisplayManager;
import fr.ove.openmath.jome.ctrlview.bidim.selection.events.SelectionEvent;

/**
* A layout manager that lays display of substitued displays.
*
* @author © 1999 DIRAT Laurent
* @version 2.0 04/08/1999
*/
public class SubstitutionLayout extends AbstractStringLayout implements SubstitutedDisplayManager {
    /**
    * The list of the displays that have been iconified.
    */
    private Vector substitutedDisplay = new Vector();
    
    /**
    * Checks the validity of the selection.
    */
    public void validateSelection() {
    }
    
    /**
    * Checks the validity of the deselection.
    * @param display the display to deselect.
    */
    public void validateDeselection(Display display) {
    }

    /*
    * Adds an substituted display to the list.
    */
    public void addSubstitutedDisplay(Display display) {
        substitutedDisplay.addElement(display);
    }
    
    /*
    * Removes a substituted display to the list.
    * @param display the display to remove.
    */
    public void removeSubstitutedDisplay(Display display) {
        substitutedDisplay.removeElement(display);
    }
    
    /*
    * Removes a substituted display at the specified rank to the list.
    * @param rank the specified rank.
    */
    public void removeSubstitutedDisplay(int rank) {
        substitutedDisplay.removeElementAt(rank);
    }
    
    /**
    * Returns the substituted display at the specified rank.
    * @param rank the specified rank.
    */
    public Display getSubstitutedDisplay(int rank) {
        return (Display) substitutedDisplay.elementAt(rank);
    }
    
    /**
    * Returns the number of substituted displays.
    */
    public int getNbSubstitutedDisplay() {
        return substitutedDisplay.size();
    }
}
